#include "common.h"

vector<vector<int>> ans;
void dfs(vector<int>& nums, vector<int>arr, int index)
{
	for (int i = index; i < nums.size(); i++)
	{
		arr.push_back(nums[i]);
		ans.push_back(arr);
		dfs(nums, arr, i + 1);
		arr.pop_back();
	}
}
vector<vector<int>> subsets(vector<int>& nums)
{
	ans.push_back({});
	vector<int> arr;
	dfs(nums, arr, 0);
	return ans;
}